import { Inject, Controller  ,Get  ,Query, Post, Body} from '@midwayjs/decorator';
import { Context } from '@midwayjs/koa';
import {  ApiBearerAuth,  ApiTags } from '@midwayjs/swagger';

import { Validate } from '@midwayjs/validate';
import { loginDTO } from 'src/dto/login';
import { UserService } from 'src/service/user.service';
// import { PayService } from 'src/service/onlypay.service';
import { LoginMiddleware  } from '../../middleware/userlogin';

//  定义父路由  /user

@ApiTags(['前台'])
@ApiBearerAuth()
@Controller('/user',   { middleware: [ LoginMiddleware ]}  )
export class UserController {
  @Inject()
  ctx: Context;

  @Inject()
  UserService:UserService

  @Get('/login2')
  async getnovel(@Query('uid') uid) {
   //   return  'Hello Midwayjs12312312!'
        return { 
             uuid: 12312
        }
  }

  
  @Post('/login')
  async loginPost(@Body() userinfo: loginDTO ) {
    //  用户号跟密码
   //   return  'Hello Midwayjs12312312!'
        return this.UserService.login(userinfo)
  }




/* 
     前端随机生成账号跟密码
     考虑随机性
     前端生成 后端校验   不通过再生成
     
*/

  @Post('/register')
  @Validate()
  async registerPost(@Body() userinfo: loginDTO ) {
    //  用户号跟密码
   //   return  'Hello Midwayjs12312312!'
        return this.UserService.register(userinfo)
  }


  @Post('/checkusername')
  async   checkusername(@Body('username')  username:string  ){
          return  this.UserService.checkusername(username)
  }



  
  @Post('/getuserhistory')
  async   getuserhistory(){
     // 由于机制  redis 不是一个表格 , 目前我们是用string 来存储   对象 
          return  this.UserService.getuserhistory()
  }


  @Post('/getuserbook')
  async   getuserbook(){
     // 由于机制  redis 不是一个表格 , 目前我们是用string 来存储   对象 
          return  this.UserService.getuserhistory()
  }





}

